﻿package cn.hxsteel.storage.core.base;

import java.io.Serializable;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.ehcache.EhCacheCacheManager;

/**
 * DAO基类<持久对象的实体类,主索引键类型的实体类>，其它DAO可以直接继承这个DAO，不但可以复用共用的方法，还可以获得泛型的好处。
 */
public class BaseDAO< T, PK > extends cn.hxsteel.core.base.BaseDAO< T, PK >
{
    @Autowired
    protected EhCacheCacheManager _cacheManager;
    
    /* 公用方法
    --------------------------------------------------*/
    
    /**
     * 添加PO
     * 
     * @param entity 实体类
     */
    public PK save( T entity )
    {
	return (PK) super.save( entity );
    }
    
    /**
     * 修改PO
     * 
     * @param entity 实体类
     */
    public void update( T entity )
    {
	super.update( entity );
    }
    
    /**
     * 删除PO
     * 
     * @param entity 实体类
     */
    public void delete( T entity )
    {
	super.delete( entity );
    }
    
    /**
     * 根据id获取PO实例
     * 
     * @param id 标识
     */
    public T get( Serializable id )
    {
	return super.get( id );
    }
    
    /**
     * 根据id加载PO实例
     * 
     * @param id 标识
     */
    public T load( Serializable id )
    {
	return super.load( id );
    }
    
    /**
     * 查询所有记录的对象列表
     */
    public List< T > loadAll()
    {
	return super.loadAll();
    }
}